Compiler - Assisted Value Correlation for Indirect Branch Prediction ∗
نویسندگان
چکیده
Indirect branch prediction is important to boost instruction-level parallelism in modern processors. Previous indirect branch predictions usually cannot achieve high performance for the ineffectiveness of correlated information. This paper proposes the Compilerassisted value correlation (CVC), a hardware/software cooperative indirect branch prediction scheme. The key is to identify effective value correlation based on program substructures. A compiler algorithm is introduced to identify the effective value correlation based on three program substructures: virtual function calls, switch-case statements and function pointer calls. The compiler-identified value correlation is transferred to the dynamic predictor by extending the instruction set architecture. At runtime, the processor relies on a low-complexity Correlated value buffer (CVB) to maintain the compiler-identified value correlation and to guide the target address prediction for those indirect branch instructions. Our evaluations show that CVC prediction can significantly improve the performance with little extra hardware support over the traditional BTB predictor and the state-of-the-art VBBI prediction.
منابع مشابه
Compiler Support for Value-Based Indirect Branch Prediction
Indirect branch targets are hard to predict as there may be multiple targets corresponding to a single indirect branch instruction. Value Based BTB Indexing (VBBI), a recently proposed indirect branch prediction technique, utilizes the compiler to identify a ‘hint instruction’, whose output value strongly correlates with the target address of an indirect branch. At run time, multiple targets ar...
متن کاملE ectively Exploiting Indirect Jumps
This paper describes a general code-improving transformation that can coalesce conditional branches into an indirect jump from a table. Applying this transformation allows an optimizer to exploit indirect jumps for many other coalescing opportunities besides the translation of multiway branch statements. First, dataaow analysis is performed to detect a set of coalescent conditional branches, wh...
متن کاملAdvanced Techniques for Improving Indirect Branch Prediction Accuracy
Deep pipelines and fast clock rates are necessitating the development of high accuracy branch predictors. From microarchitectural viewpoint, in the last decade the importance of indirect branch prediction increased even though, in the computing programs the indirect jumps remain less frequent than the more predictable conditional branches. One reason refers to predicative execution that implies...
متن کاملVariable Length Path Branch Prediction Variable Length Path Branch Prediction
all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proot or commercial advantage and that copies bear this notice and the full citation on the rst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, ...
متن کاملThe Precomputed Branch Architecture
Accurate instruction fetch and branch prediction is increasingly important on today’s superscalar architectures. Fetch prediction is the process of determining the next instruction to request from the memory subsystem. Branch prediction is the process of predicting the likely out-come of branch instructions. A branch target buffer (BTB) is often used to provide target addresses for taken branch...
متن کامل